﻿#ifndef RESPONESUTILS_H
#define RESPONESUTILS_H

#include "httpresponse.h"

#include <QJsonArray>
using namespace stefanfrings;

class ResponesUtils
{
public:
    ResponesUtils();
    ~ResponesUtils();
    /**
     * @brief JsonObject结果响应
     * @param response
     * @param total
     * @param list
     */
    static void resultResponse(HttpResponse &response,QJsonObject data);
    /**
     * @brief JsonArray结果响应
     * @param response
     * @param total
     * @param list
     */
    static void resultResponse(HttpResponse &response,QJsonArray data);
    /**
     * @brief JsonValue结果响应
     * @param response
     * @param total
     * @param list
     */
    static void resultResponse(HttpResponse &response,QJsonValue data);
    /**
     * @brief 分页结果响应
     * @param response
     * @param total
     * @param list
     */
    static void pagedResultResponse(HttpResponse &response, uint64_t total, QJsonArray list);
    /**
     * @brief 错误消息响应
     * @param response
     * @param message
     * @param error
     */
    static void erroResponse(HttpResponse &response,QJsonValue error);
    /**
     * @brief 二进制数据响应（Base64）
     * @param response
     * @param byteArray 数据
     * @param compress 是否将byteArray进行zip压缩
     */
    static void binaryResponse(HttpResponse &response,const QByteArray &byteArray,bool compress=false);
    /**
     * @brief 下载文件数据响应
     * @param response
     * @param filePath
     * @param fileName
     */
    static void downloadFileResponse(HttpResponse &response,const QString &filePath,QString fileName="");

//    /**
//     * @brief 错误消息响应
//     * @param response
//     * @param message
//     */
//    static void paramErrorResponse(HttpResponse &response,QString message);
    /**
     * @brief 禁止的
     * @param response
     * @param message
     */
    static void forbiddenResponse(HttpResponse &response,QString message = "Forbidden Exception");
    /**
     * @brief 未授权的响应，权限校验失败
     * @param response
     */
    static void unAuthorizedResponse(HttpResponse &response);
};



#endif // RESPONESUTILS_H
